#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
	int m=0;
	int n = 0;
/*	int i=0;
	int j=0;
*/
	/*	  牛客  输出X
	while (scanf("%d", &n) != EOF) {
		char arr[n][n];      //定义一个二维数组
		for(i=0;i<n;i++)     //行循环
		{
			for(j=0;j<n;j++)  //列循环
			{
				if(i==j)     //当行列做坐标一样   输出*   正斜线
				{		
				arr[i][j]='*';
				}
				
				else if(i+j==n-1)    //i+j等于输入的数n-1   也要打印*   反斜线   数组最大下标为n-1
				{
				arr[i][j]='*' ;//TODO
				}
				
				else
				{
					arr[i][j]=' ';			//除了*部分   其余都应该打印空格进行输出
				}
				printf("%c",arr[i][j]);    //循环一行输出一次
			}
			printf("\n");  					//循环一次换一次行
			
		}
	
	
		}
	*/

	//输出空心正方形图案   牛客
	/*  例如：输入5
	输出：* * * * *
		  *		  *
		  *		  *
		  *		  * 
		  * * * * *
	*/	

	
	
	
	/*
	while(scanf("%d",&n)!=EOF)
	{
	char arr[n][n];
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(i==0||i==n-1)
				{
					arr[i][j]='*';
				}
				
				else if(j==0||j==n-1)
				{
					arr[i][j]='*';
				}
				else
				{
					arr[i][j]=' ';
				}
			printf("%c ",arr[i][j]);	
			}
			printf("\n");
		}
	
	
	}
	*/
	

	
	
	//矩阵转置   把一个二行三列的二维数组  变成三行两列进行输出   牛客
/*	while(scanf("%d %d",&n,&m)!=EOF)   //多组输入
	{
		int arr[n][m];
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				scanf("%d",&arr[i][j]);   //可以输入数据
			}
		}
		

	
	//实现转置调换
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%d ",arr[j][i]);
		}
		printf("\n");
	}
	
}
*/	
	
	
	
	
	//有序序列数组合并   牛客


	
		scanf("%d %d",&n,&m);  //输入两个数对应数组长度
		int arr1[1000]={0};  //分别定义两个数组  不超过一千
		int arr2[1000]={0};  //分别定义两个数组  不超过一千
		
		for(int i=0;i<n;i++)   //对应第一份数组输入
		{
			scanf("%d",&arr1[i]);
		}
		
		
		for(int i=0;i<m;i++)    //对应第二行数组的输入
		{
			scanf("%d",&arr2[i]);
		}
		
		int i=0;  //遍历第一个数组
		int j=0;  //遍历第二个数组
		
		while(i<n&&j<m)  //两个都在合法的下标   只有两个条件同时满足才可以进入循环
		{
			if(arr1[i]<arr2[j])  //谁小先打印谁  打印之后后移
			{
				printf("%d ",arr1[i]);
				i++;
			}
			
			else 
			{
				printf("%d ",arr2[j]);
				j++;
			}
		}
		
		//如果进入不了上述循环  两种情况
	
	while(i<n)  //i>n  第一个数组遍历结束
	{
		printf("%d ",arr1[i]);
		
	}
	
	
	
	while(j<m)   //j>m  第二个数组遍历结束
		{
			printf("%d ",arr2[j]);
			j++;
		}
		
		
		
		return 0;
	}
